示例
平台已连接3个数据源,需将这些数据源的数据合并后用于后续处理。
{
"workshop": {
"furnace1": {
"temp": 85
},
"furnace2": {
"humidity": 64
},
"furnace3": {
"pressure": 80
}
}
}
需使用的节点
本示例中,我们使用 join 节点来整合之前接收的多条消息。
| 参数(Parameter) | 说明(Description) |
|---|---|
| 模式(Mode) | 合并模式。 |
| 合并对象(Combine each) | 想要合并的消息部分。
常用为 |
| 生成结果类型(to create) | 合并后的结果类型: |
使用已有的 msg.parts 属性(Use existing msg.parts property) | 勾选后,节点会使用前置节点传入的 |
| 发送消息 → 接收指定数量的消息片段后(After a number of message parts) | 接收到设定数量的消息片段后,输出合并后的结果。 |
| 发送消息 → 以及后续每条新消息到达时(and every subsequent message) | 勾选后,首次输出合并结果后,每有新消息到达,节点都会输出更新后的合并结果。 |
| 发送消息 → 第一条消息到达后超时触发(After a timeout following the first message) | 可选配置。第一条消息到达时启动计时器,超时(单位:秒)后, 节点输出当前已收集到的所有内容的合并结果。 |
发送消息 → 收到含 msg.complete 属性的消息时(After a message with the msg.complete property set) | 当收到携带 |
| (高级)字符串/二进制缓存分隔符(String/Buffer separator) | 若结果类型为 字符串(String),可设置可选的分隔符; 若为 二进制缓存(Buffer),则直接拼接数据,无分隔符。 |
如何合并多数据源?
- 在 事件流程 中拖拽 3 个
mqtt in节点,分别订阅对应的主题。
- 将 3 个节点都连接到同一个
join节点,并配置为合并生成一个对象。
- 连接
debug节点,触发流程后查看合并结果。
